#include "online.h"
#include "ui_online.h"
#include"QDebug"
#include"tcpclient.h"

Online::Online(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Online)
{
    ui->setupUi(this);
}

Online::~Online()
{
    delete ui;
}

void Online::showUser(PDU *pdu)
{
    if(NULL == pdu)
    {
        return ;
    }
    // 用户个数
    uint uiSize = pdu->uiMsgLen / 32;
    char caTmp[32];//缓存数组
    for(uint i = 0; i < uiSize; i++)
    {
        memcpy(caTmp, (char*)(pdu->caMsg) + i * 32, 32);
        ui->online_lw->addItem(caTmp);
    }
}

void Online::on_addFriend_Pb_clicked()
{
    QListWidgetItem *item = ui->online_lw->currentItem();
    if(NULL == item)
    {
        return;
    }
    // 选择的好友名称
    QString friendName = item->text();
    QString loginNameQString = TcpClient::getInstance().loginName(); // 假设返回QString
    std::string loginName = loginNameQString.toStdString(); // 转换为std::string

    if (friendName.isEmpty() || loginName.empty()) {
        QMessageBox::critical(this, "添加好友", "添加好友失败：当前用户或选择不能为空");
        return;
    }

    if (friendName == QString::fromStdString(loginName)) {
        QMessageBox::critical(this, "添加好友", "添加好友失败：不能添加自己");
        return;
    }
    PDU *pdu = mkPDU(0);
    pdu->uiMsgType = ENUM_MSG_TYPE_ADD_FRIEND_REQUEST;
    memcpy(pdu->caData, friendName.toStdString().c_str(), friendName.size());
    memcpy(pdu->caData + 32, loginName.c_str(), loginName.size());
    TcpClient::getInstance().getTcpSocket().write((char*)pdu, pdu->uiPDULen);
    free(pdu);
    pdu = NULL;
}
// #include "online.h"
// #include "ui_online.h"
// #include <QDebug>
// #include "tcpclient.h"

// Online::Online(QWidget *parent)
//     : QWidget(parent)
//     , ui(new Ui::Online)
// {
//     ui->setupUi(this);
// }

// Online::~Online()
// {
//     delete ui;
// }

// void Online::showUsr(PDU *pdu)
// {

//     if(NULL == pdu)
//     {
//         return;
//     }
//     uint uiSize = pdu->uiMsgLen/32;
//     char caTmp[32];
//     for (int i=0; i<uiSize; i++)
//     {
//         memcpy(caTmp,(char*)(pdu->caMsg)+i*32,32);
//         ui->online_lw->addItem(caTmp);

//     }
// }

// void Online::on_addFriend_pb_clicked()
// {
//     QListWidgetItem *pItem = ui->online_lw->currentItem();
//     QString strPerUsrName = pItem->text();
//     QString strLoginNmae = TcpClient::getInstance().loginNmae();
//     PDU *pdu = mkPDU(0);
//     pdu->uiMsgtype = ENUM_MSG_TYPE_ADD_FRIEND_REQUEST;
//     memcpy(pdu->caData, strPerUsrName.toStdString().c_str(), strPerUsrName.size());
//     memcpy(pdu->caData+32, strLoginNmae.toStdString().c_str(), strLoginNmae.size());
//     TcpClient::getInstance().getTcpSocket().write((char*)pdu, pdu->uiPDULen);
//     free(pdu);
//     pdu = NULL;
// }

